package mws;

import java.util.concurrent.BlockingQueue;

public interface SwiftBlockingQueueInterface<T extends Runnable> extends BlockingQueue<T> {


    /**
     * 获取当前阻塞线程信息
     */
    void WakeUpBlockingThreads(BlockingQueue lastBlockingQueue);

    /**
     * 获取最后切换时间（纳秒）
     */
    long getLastSwitchTime();

    BlockingQueue<T> getNowQueue();

    // 修正接口方法名拼写，规范泛型
    // 无参构造的队列供应者接口（使用泛型T）
    @FunctionalInterface
    interface BlockingQueueSupply<T, E extends BlockingQueue<T>> {
        E newBlockingQueue(); // 修正拼写错误，明确返回E类型（BlockingQueue的实现类）
    }

    // 带容量参数的队列供应者接口（使用泛型T）
    @FunctionalInterface
    interface BlockingQueueSupplyOnSize<T, E extends BlockingQueue<T>> {
        E newBlockingQueue(int size); // 带容量参数的创建方法
    }
}
